home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 1 / CU Amiga Magazine CD-ROM Special Edition (1995)(EMAP Images)(GB)[Issue 1995-11].iso / Aminet / comm / tcp / AmiTCPsdk_40.lha / AmiTCP-4.0 / netinclude / sys / stat.h < prev    next >
C/C++ Source or Header  |  1994-10-05  |  3KB  |  103 lines

  1. #ifndef SYS_STAT_H
  2. #define SYS_STAT_H \
  3.        "$Id: stat.h,v 4.1 1994/10/05 23:16:17 ppessi Exp $"
  4. /*
  5.  *    Unix-compatible stat() definitions for SAS/C
  6.  *
  7.  *      Copyright © 1994 AmiTCP/IP Group,
  8.  *                       Network Solutions Development, Inc.
  9.  *                       All rights reserved.
  10.  */
  11.  
  12. #ifndef SYS_TYPES_H
  13. #include <sys/types.h>
  14. #endif
  15.  
  16. struct    __stat
  17. {
  18.     dev_t    st_dev;        /* unique device id */
  19.     ino_t    st_ino;        /* inode of file (key block) */
  20.     mode_t  st_mode;    /* Unix style mode */
  21.     u_short    st_nlink;    /* number of links (unimplemented) */
  22.     uid_t    st_uid;        /* owner's user ID */
  23.     gid_t    st_gid;        /* owner's group ID */
  24.     dev_t    st_rdev;    /* special file ID (unimplemented) */
  25.     off_t    st_size;    /* file size */
  26.     time_t    st_atime;    /* Time of last access */
  27.     time_t    st_mtime;    /* Last modification time */
  28.     time_t    st_ctime;       /* Last file status change time */
  29.     long    st_blksize;    /* Size of disk block */
  30.     long    st_blocks;    /* Size in blocks */
  31.     long    st_dosmode;    /* DOS protection bits */
  32.         short   st_type;    /* DOS file type */
  33.         char   *st_comment;     /* DOS file comment */
  34. };
  35.  
  36. #if defined(__SASC) && defined(S_IFMT)
  37. #undef S_IFMT
  38. #undef S_IFDIR
  39. #undef S_IFREG
  40. #undef S_ISCRIPT
  41. #undef S_IPURE
  42. #undef S_IARCHIVE
  43. #undef S_IREAD
  44. #undef S_IWRITE
  45. #undef S_IEXECUTE
  46. #undef S_IDELETE
  47. #endif
  48.  
  49. #define    S_ISUID    0004000        /* set user id on execution */
  50. #define    S_ISGID    0002000        /* set group id on execution */
  51. #define    S_ISVTX    0001000        /* save swapped text even after use */
  52.  
  53. #define    S_IRWXU    0000700        /* RWX mask for owner */
  54. #define    S_IRUSR    0000400        /* R for owner */
  55. #define    S_IWUSR    0000200        /* W for owner */
  56. #define    S_IXUSR    0000100        /* X for owner */
  57.  
  58. #define    S_IREAD        S_IRUSR
  59. #define    S_IWRITE    S_IWUSR
  60. #define    S_IEXEC        S_IXUSR
  61.  
  62. #define    S_IRWXG    0000070        /* RWX mask for group */
  63. #define    S_IRGRP    0000040        /* R for group */
  64. #define    S_IWGRP    0000020        /* W for group */
  65. #define    S_IXGRP    0000010        /* X for group */
  66.  
  67. #define    S_IRWXO    0000007        /* RWX mask for other */
  68. #define    S_IROTH    0000004        /* R for other */
  69. #define    S_IWOTH    0000002        /* W for other */
  70. #define    S_IXOTH    0000001        /* X for other */
  71.  
  72. #define    S_IFMT     0170000    /* type of file */
  73. #define    S_IFCHR     0020000    /* character special */
  74. #define    S_IFDIR     0040000    /* directory */
  75. #define    S_IFBLK     0060000    /* block special */
  76. #define    S_IFREG     0100000    /* regular */
  77. #define    S_IFLNK     0120000    /* symbolic link */
  78. #define    S_IFSOCK 0140000    /* socket */
  79. #define    S_IFIFO     0010000    /* named pipe (fifo) */
  80.  
  81. #define S_BLKSIZE    512    /* block size used in the stat struct */
  82.  
  83. #define    S_ISDIR(m)    ((m & 0170000) == 0040000)    /* directory */
  84. #define    S_ISCHR(m)    ((m & 0170000) == 0020000)    /* char special */
  85. #define    S_ISBLK(m)    ((m & 0170000) == 0060000)    /* block special */
  86. #define    S_ISREG(m)    ((m & 0170000) == 0100000)    /* regular file */
  87. #define    S_ISLNK(m)    ((m & 0170000) == 0120000)    /* symbolic link */
  88. #define    S_ISFIFO(m)    ((m & 0170000) == 0010000)    /* fifo */
  89. #define    S_ISSOCK(m)    ((m & 0170000) == 0140000)    /* socket */
  90.  
  91. mode_t umask(mode_t);
  92. int __chmod(const char *, int);
  93. int __fstat(int, struct __stat *);
  94. int __stat(const char *, struct __stat *);
  95. int __lstat(const char *, struct __stat *);
  96.  
  97. #define chmod __chmod
  98. #define fstat __fstat
  99. #define stat  __stat
  100. #define lstat __lstat
  101.  
  102. #endif /* SYS_STAT_H */
  103.